HDL lipidome quantification (from targeted)

source("global.R")
library(ggrepel)
library(ComplexHeatmap)

lipid <- readRDS("../data/targeted_singletp_fin3_all.rds")

Analysis based on the targeted lipidomic results. File: mx733759_Agus_Lipids_Single-point quant_with cholesterol_Submit_10-17-23.xlsx. The peak heights were converted to ng/mL based on the amount and peak height of iSTD.

Data processing

  • Features with InChI Keys that couldn’t be found in the PubChem were excluded.

  • Compounds with identical InChI Keys were selected by lowest CV in pooled samples.

  • Assign lipid class from LIPID MAPS and manually curated table.

  • Concentration were calculated based the most abundant istd in each lipid class.

  • Cholesterol istd was rerun.

CVs of pooled samples

The CVs of pooled samples for each lipid species were calculated using the following formula:

\[ CV_{lipid\ species} = SD_{lipid\ species}/Mean_{lipid\ species} * 100\% \]

We are less confident with the lipid species with a high CV. These lipid species will be excluded for further analysis.

hist(lipid$fdata$qc_cv, main = "The distribution of CVs")

sum(lipid$fdata$qc_cv>30)
[1] 13

We excluded lipid species with a CV > 30%. 13 features were excluded.

lipid <- subset_features(lipid, lipid$fdata$qc_cv<30)

Following analysis included all quantified lipid species.

Included all quantified lipid species. 455 lipid species for analysis.

Lipid class

Pie chart

lipid.class3 <- subset_features(lipid, !is.na(lipid$fdata$
                                                       class))
lipid.class3 <- summarize_feature(lipid.class3, "class")
edata.prop3 <- apply(lipid.class3$edata, 2, function(col){
        col/sum(col)*100
})

# pie chart
pies.class3 <- lapply(sampleNames(lipid), plotPie, edata.prop3)
legend.class3 <- get_legend(pies.class3[[1]]+theme(legend.position = "bottom"))
pies.class3 <- lapply(pies.class3, function(x)x+theme(legend.position = "none"))
plot_grid(plotlist = pies.class3, nrow = 3)

Bar plot

# bar plot
plotBar(edata.prop3)

PCA

edata.scaled3 <- scale(t(edata.prop3), center = T)
res.pca <- PCA(edata.scaled3, scale.unit = T, graph = FALSE)
# fviz_eig(res.pca, addlabels = TRUE)
fviz_pca_ind(res.pca, 
             axes = c(1,2),
             repel = TRUE,
             title = NULL
) +
        theme_cynthia_bw() +
        theme(
                legend.position = "none"
        ) +
        labs(title = NULL)

Lipid species enriched in fractions

The concontration of each lipid species in each fraction was normalized to the total lipid concentration of each fraction before compare across fractions. For example,

Species level

Class level

lipid.class <- summarize_feature(lipid, "class")
lipid.class.rel <- apply(lipid.class$edata, 2, function(x){
        x/sum(x)
})
p.class <- enrich_all_fraction(bg.fraction, lipid.class.rel, lipid.class, TRUE)

# Heatmap of enrich species in each fraction
mat.class <- as.matrix(p.class)
mat.class[mat.class<0.01] <- 0.01
mat.class <- -log(mat.class)

Heatmap(mat.class, name = "-log(p)")